---
id: dec_2022_3_15_0
title: Dec 2022 (version 3.15.0)
sidebar_label: Dec 2022 (3.15.0)
---

Welcome to the latest release of Querybook 🎉.

Following are the top new features we have added during the year 2022:

- **Query Search**: Query executions are searchable now.
- **UDF Creator**: Custom UDF plugin can be added to let users add UDFs easily in the query editor.
- **Schedules Page**: Users can see all their scheduled DataDocs in a central place now.
- **Dynamic Result Size**: Dynamically configure how many rows of results to display on the UI.
- **Table Uploader**: Create tables from query execution results or file uploads.
- **Customized Tags**: Annotate tags with features like color, tooltip, icon, rank and etc.
- **List V2**: Added nested lists, full page view, and more collectible types.
- **Automatic Query Limit**: A limit clause will be added to a select query without limits.
- **Live Syntax Check**: Validate query syntax and show errors in realtime.
- **Query Transpiler**: Transpile queries between different languages like Presto and SparkSQL.
- **Dag Exporter**: Export a DataDoc as a DAG to systems like Airflow.
- **Customized Schedule Notification**: Scheduled Docs can send notifications to custom Slack alias or email addresses.
- **Event Logging**: Provides instrumentation support for logging client action events and API events.
- **Run All Cells**: Run all query cells in a DataDoc.

## Feature highlights

### Query Search
Users can search query executions by statement type, query engine, and runner. Can also put multiple tables to see how they are used together.
![](/changelog/20221220/querysearch.png)

### UDF Creator

If your query engine supports UDFs/Stored Procedures, you can use the custom UDF plugin to let users add UDFs easily in the query editor. The UDF editor in Querybook allows users to quickly create UDFs by filling out a form.
![](/changelog/20221220/udf1.png)
![](/changelog/20221220/udf2.png)

### Schedules Page

We added a new page to display all your data docs.
![](/changelog/20221220/scheduled1.png)

By default, it only shows the scheduled docs, from where you can view and manage the schedules and their run history.
![](/changelog/20221220/scheduled2.png)

You can also filter or view all the data docs you own.
![](/changelog/20221220/scheduled3.png)


### Dynamic Result Size
Users can now dynamically configure how many rows of results they want to see on the frontend.
![](/changelog/20221220/resultpreview1.png)

They can also apply this limit for charts, in which case if it is higher than the default limit, only the chart data would be fetched.
![](/changelog/20221220/resultpreview2.png)


### Table Uploader
Users can create and upload a table from a query execution result or a file.

Upload from query execution
![](/changelog/20221220/tableupload1.png)

Upload from sidebar
![](/changelog/20221220/tableupload2.png)

Select source (can be query execution as well)
![](/changelog/20221220/tableupload3.png)

Fill out table details
![](/changelog/20221220/tableupload4.png)

Upload
![](/changelog/20221220/tableupload5.png)


### Customized Tags
Added ability to annotate tags with the following features:

 * Color
 * Tooltip
 * Icon
 * Rank
 * Admin (Only admin can edit)

![](/changelog/20221220/tag1.png)

You can edit tags by right-clicking (only the ones you are allowed to)
![](/changelog/20221220/tag2.png)
![](/changelog/20221220/tag3.png)


### List V2
Updated the List feature with

 * Full page view
 * Nested lists
 * Public lists
 * Add custom descriptions to each list item
 * Share ith R/W permissions
![](/changelog/20221220/listv2.png)

### Automatic Query Limit
If a select query doesn't have a LIMIT clause, Querybook will add a default one for it automatically. Querybook will also tell users if the number of rows returned has reached the limit. Users can turn it off by selecting the `none` option.
![](/changelog/20221220/querylimit.png)

### Live Syntax Check
Check the query syntax and show the errors in realtime. The only default support right now is Presto/Trino.
![](/changelog/20221220/syntax.png)

### Query Transpiler (Experimental)
Users can now transpile queries between Presto and SparkSQL.
![](/changelog/20221220/transpile1.png)
![](/changelog/20221220/transpile2.png)


### Dag Exporter (Experimental)
You can add a dag exporter plugin for your dag system to allow users to export a DataDoc as a dag to your dag system.
![](/changelog/20221220/dag1.png)
![](/changelog/20221220/dag2.png)
![](/changelog/20221220/dag3.png)

### Customized Schedule Notification
 * Users can add a separate notification section for each notify type in the schedule form
 * For each notify type, it will have a "Notify To", where users can put either multiple email addresses or slack channels/ usernames
 * The scheduled datadoc will be always run by the datadoc owner
![](/changelog/20221220/notification1.png)

### Event Logging (Experimental)
Added support for event logging with some built-in loggers. Admins can add other loggers through the plugin system.

`DBEventLogger` output example
![](/changelog/20221220/eventlogging.png)

### Run All Cells
Users can now run all query cells of a DataDoc in sequence, like the manual run of a schedule.
![](/changelog/20221220/runall.png)

## Small Feature Improvements/Bug Fixes

- Support embedding of DataDocs in external Applications, like Linkedin [Datahub](https://github.com/linkedin/datahub)
- Replaced D3 with React-flow
- Manually refresh a table from metastore
- Added column filtering to toggle which columns to show
- Template variables support for ad-hoc query
- Sync table/column descriptions from metastore
- Added icon for table partition keys
- Show deactivated user with different UI
- Added syntax highlight/copy to markdown code
- Syntax highlighting for templated queries
- Added schema filtering for table search
- Added task to auto-disable unused scheduled docs
- Ability to sort templated variables
- Warnings when dropping tables
- Search table with their exact name would auto open the table
- Autosuggest would now add quotes around columns and tables when needed

Querybook Team<br/>
Pinterest<br/>
🚀
